home *** CD-ROM | disk | FTP | other *** search
- Kermit-20 Version 4.2(260) Dec 1987, Known Bugs, Problems, Limitations.
-
- 11-Dec-87 15:34:23-EST,1003;000000000001
- Date: Fri 11 Dec 87 15:34:19-EST
- From: Frank da Cruz <SY.FDC@CU20B.COLUMBIA.EDU>
- Subject: New Release of DEC-20 Kermit
- To: sy.christine@CU20B.COLUMBIA.EDU
-
- I never thought I'd touch this program again, but it contained a thoughtless
- restriction, namely that it wouldn't let you issue commands to servers unless
- you were in local mode (e.g. after dialing out through another line). This
- prevented you from putting a bunch of commands (multiple SENDs and/or GETs,
- followed by FINISH) into a TAKE file, TAKing the file, escaping back to the PC
- and putting it in server mode. The new release, 4.2(260), removes this
- restriction so long as the commands (like GET, FINISH, BYE) are issued from
- TAKE files. The old problem of inferior process capabilities not getting set
- right, e.g. after a PUSH command, is also fixed. The new version is in
- KER:K20MIT.MAC on CU20B. - Frank
-
- Jan 88 - the above change introduced a new problem: If you issue commands to a
- server (like GET, FINISH, etc) while in remote mode, the TTY is not put in
- binary mode first, so it still has parity, echo, etc. This should be easy
- to fix...
-
- Kermit-20 Version 4.2(256) May 1985, Known Bugs, Problems, Limitations.
-
- As of: 12:42pm Tuesday, 23 July 1985
-
- . Needs copyright notice.
-
- . Server does not perform REMOTE HOST commands.
-
- . File Attribute packets are not yet supported.
-
- . Server, running in batch, should not give "?KERMIT-20: File not found"
- message, which shuts down the batch job; use "%" messages instead.
-
- . REMOTE SPACE command should accept a device/directory argument.
-
- . RUN command should accept an optional command line argument.
-
- . REMOTE WHO missing.
-
- . Should allow "remapping" bytesize of incoming files based on whether
- first page has any 8th bits set, to allow transparent uploading of 8-bit
- binary data when "auto" set.
-
- . During CONNECT, should clear output buffer (CFOBF) before sending BREAK.
-
- . If monitor version 6.0 or greater, then line speed is reported correctly
- by MTOPR, even for remote lines -- should allow for this.
-
- . If you do "get NUL:" to a Kermit-20 server, it sends an empty F packet.
-
- . Code to delete trailing "." in outbound F packet seems to fail sometimes.
-
- . Reported (not verified) that SET FLOW doesn't turn XON/XOFF on/off on an
- assigned TTY line (or maybe it's page mode).
-
- . Should handle ^C during packets more intelligently?
-
- . Reported (not verified) that ^A for status report during FT in local mode
- sometimes gets lost. Scenario: 1. SET LINE x; 2. Start FT, but with no
- Kermit on other side; 3. ^C back to command level; 4. Connect. ^A still
- being trapped.
-
- . Recover from receiving a null F packet, instead of looping with
- "SPACK: illegal message length" messages forever (have to look into this
- a little more deeply; should never get a null F packet anyway...)
-
- . Capabilities word not set correctly for inferior forks in RUN or PUSH
- if CONNECT not done first (CAPAS word set only in TTYINI, which is called
- only for CONNECT) (reported by Jeff Jones at ORNL, not yet verified).
-
- . TAC support:
-
- Date: 10 Apr 1985 22:17 MST (Wed)
- From: "Frank J. Wancho" <WANCHO@SIMTEL20.ARPA>
- To: SY.FDC@CU20B
- Subject: Changes to 20KERMIT.MAC
-
- Frank,
-
- The following are the changes I made to 20KERMIT.MAC.255 to add
- support for a MONITR that doubles IACs and has new MTOPR% calls to
- negotiate network binary mode. Such support is in MRC's PANDA MONITR
- which we are running now, and the MTOPR% codes are of MRC's making,
- not yet DEC's. I have made similar changes in MODEM available in the
- usual place here (MICRO:<CPM.TOPS-20>).
-
- --Frank
- --------------------
- REDIT 1(103) COMPARE by user WANCHO, 10-Apr-85 22:07:04
- File 1: PS:<TEMP>KERMIT.MAC.255
- File 2: PS:<TEMP>KERMIT.MAC.256
- ***** CHANGE #1; PAGE 1, LINE 3; PAGE 1, LINE 3
- $verno==^d4 ; Major version number.
- $mnver==^d2 ; Minor version number.
- $edno==^d173 ; Edit number increases independent of version.
- $who==^d0 ; Who edited, 0=Columbia.
- ;
- ;PS:<TIMREK>KERMIT.MAC.1028, 11-Dec-84 19:00:29, Frank (SY.FDC@CU20B)
- ---------------------------------
- $verno==^d4 ; Major version number.
- $mnver==^d2 ; Minor version number.
- $edno==^d174 ; Edit number increases independent of version.
- $who==^d0 ; Who edited, 0=Columbia.
- ;
- ;[SIMTEL20.ARPA]PS:<TEMP>20KERMIT.MAC.256, 9-Apr-85 12:44:11, Edit by WANCHO
- ; added PANDASW conditionals to handle network binary mode negotiations
- ;PS:<TIMREK>KERMIT.MAC.1028, 11-Dec-84 19:00:29, Frank (SY.FDC@CU20B)
- ***** CHANGE #2; PAGE 219, LINE 13; PAGE 219, LINE 13
- ; Returns +1 always, but prints warning on failure.
- ;
- doarpa: skipn tvtflg ; Are we on tvt?
- ret
-
- move t1,netjfn ; Yes, talk binary.
- ---------------------------------
- ; Returns +1 always, but prints warning on failure.
- ;
- doarpa: skipn tvtflg ; Are we on tvt?
- ret
-
- IFE PANDASW,<
- move t1,netjfn ; Yes, talk binary.
- ***** CHANGE #3; PAGE 219, LINE 27; PAGE 219, LINE 28
- SOUT%
- %jserr(,doarpx)
- movei t1,^d4000
- DISMS
- ret
-
- ---------------------------------
- SOUT%
- %jserr(,doarpx)
- movei t1,^d4000
- DISMS
- ret
- >;IFE PANDASW
-
- IFN PANDASW,<
- MOVX t1,.CTTRM ; read present local status
- MOVX t2,.MORLT
- MTOPR%
- ; ERJMP NIM ; not a Panda monitor
- MOVEM t3,OLDLTS ; save old terminal status
- TXO t3,MO%NBI!MO%NBO ; want network binary mode
- MOVX t2,.MOSLT ; want to set it
- MTOPR%
- ; ERJMP FATAL
- MOVX B,.MORLT ; now see what actually happened
- MTOPR%
- ; ERJMP FATAL
- TXC C,MO%NBI!MO%NBO ; make mask ones if either bit zero
- IFXN. C,MO%NBI!MO%NBO
- jrst doarpx
- ENDIF.
- >;IFN PANDASW
-
- ***** CHANGE #4; PAGE 222, LINE 7; PAGE 222, LINE 7
- ; Turn off Arpanet TAC binary mode.
-
- unarpa: skipn tvtflg ; Are we on a tvt?
- ret ; No, skip this.
-
- dmove t2, [exp <point 8,[byte(8) iac,wont,trnbin]>,-3]
- ---------------------------------
- ; Turn off Arpanet TAC binary mode.
-
- unarpa: skipn tvtflg ; Are we on a tvt?
- ret ; No, skip this.
-
- IFE PANDASW,<
- dmove t2, [exp <point 8,[byte(8) iac,wont,trnbin]>,-3]
- ***** CHANGE #5; PAGE 222, LINE 20; PAGE 222, LINE 21
- SOUT%
- %jserr(,unarpx)
- movei t1, ^d4000 ; Wait another 4 secs.
- DISMS%
- ret ; Done.
-
- ---------------------------------
- SOUT%
- %jserr(,unarpx)
- movei t1, ^d4000 ; Wait another 4 secs.
- DISMS%
- ret ; Done.
- >; IFE PANDASW
-
- IFN PANDASW,<
- MOVX t1,.CTTRM ; restore modes
- MOVX t2,.MOSLT
- MOVE t3,OLDLTS ; get former status
- MTOPR%
- ; ERJMP FATAL
- >; IFN PANDASW
-
- ***** CHANGE #6; PAGE 229, LINE 8; PAGE 229, LINE 8
-
- ;[131] If ARPANET TVT then must double any hex FF's (TELNET IAC).
- ; Note, since IAC is DEL with parity bit on, we should never see one, right?
- ;
- spack6: move t2, [point 8, sndpkt] ; The address of the packet.
- skipn tvtflg ; TVT-Binary mode?
- ---------------------------------
-
- ;[131] If ARPANET TVT then must double any hex FF's (TELNET IAC).
- ; Note, since IAC is DEL with parity bit on, we should never see one, right?
- ;
- spack6: move t2, [point 8, sndpkt] ; The address of the packet.
-
- IFN PANDASW,<
- jrst spak6x
- >; IFN PANDASW
-
- skipn tvtflg ; TVT-Binary mode?
- ***** CHANGE #7; PAGE 276, LINE 22; PAGE 276, LINE 22
- flow: 1 ;[143] Flow-Control (nonzero = XON/XOFF)
- itsflg: defits ;[75] Flag for handling ITS-binary format files
- itsfil: 0 ;[75] Flag for this file is ITS format.
- itscnt: 0 ;[75] Counter for ITS header chars matched.
- tvtflg: 0 ;[129] Negotiate binary mode on ARPANET TVT.
- incase: defics ;[160] Case conversion flag for INPUT search.
- ---------------------------------
- flow: 1 ;[143] Flow-Control (nonzero = XON/XOFF)
- itsflg: defits ;[75] Flag for handling ITS-binary format files
- itsfil: 0 ;[75] Flag for this file is ITS format.
- itscnt: 0 ;[75] Counter for ITS header chars matched.
- tvtflg: 0 ;[129] Negotiate binary mode on ARPANET TVT.
- oldlts: 0
- incase: defics ;[160] Case conversion flag for INPUT search.
- 13-Nov-85 19:43:32-EST,734;000000000011
- Return-Path: <RELPH@USC-ECLC.ARPA>
- Received: from USC-ECLC.ARPA by CU20B.COLUMBIA.EDU with TCP; Wed 13 Nov 85 19:43:30-EST
- Date: Wed 13 Nov 85 15:51:29-PST
- From: John M. Relph <Relph@USC-ECLC.ARPA>
- Subject: Tops-20 Kermit V175
- To: SY.FDC@CU20B.COLUMBIA.EDU
- Message-ID: <12159023603.35.RELPH@USC-ECLC.ARPA>
-
- Frank,
- I had a problem with kermit on our Tops-20 where users could
- ^C out of connect mode because they had ^C privilege but hadn't
- enabled it. I fixed this with the patch below, which enables
- the ^C priv. This patch goes in after the RPCAP% at TTYINI+1.
-
- txne t2,sc%ctc ;[176] can they ^C trap?
- call [txo t3,sc%ctc ;[176] yes, so let's
- EPCAP%
- ret] ;[176] end edit
-
- Thanks,
- -- John
- -------
- 11-Mar-86 19:39:16-EST,947;000000000001
- Mail-From: SY.FDC created at 11-Mar-86 19:39:15
- Date: Tue 11 Mar 86 19:39:14-EST
- From: Frank da Cruz <SY.FDC@CU20B.COLUMBIA.EDU>
- Subject: TOPS-20 LAT Service
- To: TOPS20@SU-SCORE.ARPA
- Message-ID: <12189965286.29.SY.FDC@CU20B.COLUMBIA.EDU>
-
- TOPS-20 LAT service apparently does not allow 8-bit transparent terminal
- i/o. Binary files cannot be sent to DEC-20 Kermit through a LAT box
- (DECserver 100) unless you give SET PARITY commands to Kermit to force it
- to use 8th-bit prefixing. The same binary files can be sent to DEC-20 Kermit
- through a regular terminal port without having to use 8th-bit prefixing.
- In other words, all the SFCOC's, MTOPR's, SFMOD's, STPAR's, and STIW's you
- must do to make the terminal transparent just don't work for a LAT terminal.
- By contrast, Ultrix LAT service does not pose this problem -- opening a
- LAT terminal in raw mode in Ultrix works just like opening a regular terminal
- in raw mode.
- -------
- 13-Mar-86 14:40:58-EST,2080;000000000001
- Mail-From: SY.FDC created at 13-Mar-86 14:40:53
- Date: Thu 13 Mar 86 14:40:53-EST
- From: Frank da Cruz <SY.FDC@CU20B.COLUMBIA.EDU>
- Subject: TOPS-20 LAT service vs Kermit, cont'd
- To: TOPS-20@SU-SCORE.ARPA
- Message-ID: <12190435261.12.SY.FDC@CU20B.COLUMBIA.EDU>
-
- Disregard last message... Turns out that, unbeknownst to me, the behavior
- reported previously occurred from a PC that was connected by LAT to a VAX
- Ultrix system that was TELNET'd to a DEC-20 via TCP/IP over Ethernet, and it
- was TELNET stripping the high order bit, not LAT. However, there is still a
- problem with DEC-20 LAT service. The symptom is that you can't transfer files
- of any kind into a DEC-20 through LAT using Kermit or Modem or any similar
- protocol. You can, however, transfer files from the DEC-20 to the PC with no
- problem. Logging of a file transfer reveals that a typical Kermit data packet
- (80-90 characters) is truncated by the LAT box to 30-40 characters. If you
- reduce the Kermit packet size to, say, 37, then everything works, even binary
- files without 8th-bit prefixing.
-
- The mystery is that everything works fine when the host is a VAX Ultrix
- system rather than a DEC-20. Therefore, the LAT box itself is not at fault;
- the culprit must the TOPS-20 LAT service.
-
- In fact, the LAT specification says LAT_MIN_RECV_SLOT_SIZE should be in the
- range 1-255, and 127 is recommended. The TOPS-20 6.1 monitor's LATSRV module,
- however, sets the corresponding symbol MXSLSI to 40 (decimal). We haven't
- tried changing the monitor to increase this number, and are not sure what the
- consequences would be.
-
- For now, those who want to use Kermit to send files to a DEC-20 through a
- LAT box must set their packet size to 37 or less. Those who want to use MODEM
- will have to use Kermit instead, since MODEM packet sizes cannot be changed.
-
- This note does not address the other problems we've been having with TOPS-20
- LAT service, like random disconnections, etc. We noticed that several of the
- other recommended parameter settings are not followed in LATSRV.
- -------
- 16-Mar-86 00:42:35-EST,2269;000000000001
- Return-Path: <@CS.COLUMBIA.EDU,@SU-SCORE.ARPA:MRC@PANDA>
- Received: from CS.COLUMBIA.EDU by CU20B.COLUMBIA.EDU with TCP; Sun 16 Mar 86 00:42:32-EST
- Received: from SU-SCORE.ARPA by CS.COLUMBIA.EDU with TCP; Sun 16 Mar 86 00:42:59-EST
- Received: from SUMEX-AIM.ARPA by SU-SCORE.ARPA with TCP; Sat 15 Mar 86 17:32:21-PST
- Received: from PANDA by SUMEX-AIM.ARPA with Cafard; Sat 15 Mar 86 17:34:15-PST
- Date: Sat 15 Mar 86 16:48:16-PST
- From: Mark Crispin <MRC%PANDA@SUMEX-AIM.ARPA>
- Subject: DTR control patch
- To: TOPS-20@SU-SCORE.ARPA
- Postal-Address: 1802 Hackett Ave.; Mountain View, CA 94043-4431
- Phone: +1 (415) 968-1052
- Message-ID: <12191015506.11.MRC@PANDA>
-
- By popular demand, I am publishing the latest and greatest
- DTR control patch. It is in the form of a MIC file. Note the
- instructions at the bottom of the patch, which are necessary to
- actually enable the patch. You will have to do this manually
- since it is different between release 5.1 and release 6.1.
-
- This patch enables two new TTY MTOPR% functions. Function
- 400003 will hang up the given terminal line, function 400004 will
- pick it up. This is compatible with the functions in Stanford
- and PANDA monitors, where these functions are given the symbolic
- names .MOHUP (hang up) and .MODUP (DTR up).
-
- This patch uses function .DFLDU (15) to DTEQ, which is
- supported from the KL to the -11 only in the more recent versions
- of RSX-20F. If you have an older version of RSX-20F, you'll get
- an 11-HALT (ILF or some such) when you try to use function
- 400004. In that case, get a new version of RSX-20F from DEC.
-
- @GET SYSTEM:MONITR
- @START 140
- *FFF/DTRPAT:CAIE T3,400003
- *DTRPAT+1/JRST DTRPAT+4
- *DTRPAT+2/CALL TTHNGU
- *DTRPAT+3/JRST RSKP
- *DTRPAT+4/CAIE T3,400004
- *DTRPAT+5/RET
- *DTRPAT+6/JSP CX,SAVT
- *DTRPAT+7/MOVE A,MSTRDT
- *DTRPAT+10/MOVS C,B
- *DTRPAT+11/SKIPA B,.+1
- *DTRPAT+12/15,,.FEDLS
- *DTRPAT+13/CALL FIXARG
- *DTRPAT+14/HLRZ D,C
- *DTRPAT+15/SETZ C,
- *DTRPAT+16/CALL DTEQI
- *DTRPAT+17/JRST RSKP
- *DTRPAT+20/FFF:
-
- ! Now look at TTMTOP+7 (release 6.1) or TTMTO1+4 (release 5.1). It
- ! jumps to a literal which has a MOVEI T1,MTOX1 followed by a RET.
- ! Patch the RET to JRST DTRPAT. Then type CTRL/Z followed by
- ! SAVE SYSTEM:MONITR.EXE.
-
- ------------------------------
-
- Date: Thu 8 May 86 17:10:56-PDT
- From: Bob Larson <BLARSON%ECLD@USC-ECLC.ARPA>
- Subject: Problem with tops-20 kermit
-
- Tops-20 does something very nasty when confronted with a file with the
- 36th bit (lsb) of a word set and a 7-bit data link (mark parity) and
- no 8th bit quoting: it sends a packet with a bad checksum. [Tops-20
- kermit version 4.2(253)] There seem to be two better ways out of this
- bad situation: Send an error packet, or just ignore the extra bit. In
- my case the latter would be prefered. (Apperently there is an obscure
- bug in mm, which is not noticed by most tops-20 programs.)
-
- Bob Larson
-
- ------------------------------
-
- Date: Wed 3 Feb 88 18:35:32-PST
- From: Bruce Tanner <CERRITOS@ECLA.USC.EDU>
- Subject: TOPS-20 Kermit
- Keywords:
-
- I've gotten the MS-DOS 2.30 .BOO files and decided to use the MSBPCT.C
- program using the Stanford KCC compiler. The program ran fine unchanged.
- However, opening a file "wb" generates a 9-bit file (four nine-bit bytes
- per word). OK, just use the "SET FILE SIZE AUTO" and let Kermit figure
- it out, right? Wrong. I had to teach it about 9 bit files also.
- So, here are the REDIT changes I've made to edit 262 (decimal 178):
-
- 1. Recognize 9 bit files
- 2. Clean up the Moon: code (it kept giving me phase errors)
- 3. Make edit decimal (just remove the vi%dec at Version: if you don't like it)
-
- REDIT 1(103) COMPARE by user CC.TANNER, 3-Feb-88 16:40:50
- File 1: PS:<CC.TANNER.WORK>KERMIT.COLUMBIA.1
- File 2: PS:<CC.TANNER.WORK>KERMIT.MAC.26
- ***** CHANGE #1; PAGE 1, LINE 4; PAGE 1, LINE 4
- $verno==^d4 ; Major version number.
- $mnver==^d2 ; Minor version number.
- $edno==^d178 ; Edit number increases independent of version.
- $who==^d0 ; Who edited, 0=Columbia.
- ;
- ---------------------------------
- $verno==^d4 ; Major version number.
- $mnver==^d2 ; Minor version number.
- $edno==^d178 ; Edit number increases independent of version.
- $who==^d3 ; Who edited, 0=Columbia.
- ;
- ***** CHANGE #2; PAGE 14, LINE 6; PAGE 14, LINE 6
-
- subttl KERMIT Program entry, initialization, and exit.
-
- kermit: jrst start ; Start entry.
- jrst reen ; Re-entry.
- versio: byte (3)$who(9)$verno(6)$mnver(18)$edno ; Program version.
- evlen==.-kermit
- ---------------------------------
-
- subttl KERMIT Program entry, initialization, and exit.
-
- kermit: jrst start ; Start entry.
- jrst reen ; Re-entry.
- versio: byte (3)$who(9)$verno(6)$mnver(18)$edno+vi%dec ;[BT] Program version.
- evlen==.-kermit
- ***** CHANGE #3; PAGE 76, LINE 46; PAGE 76, LINE 46
- ; file bytesize keyword table.
-
- sfbtab: %table
- %key <7-bit>, 0
- %key <8-bit>, 1
- %key <auto>, 2
- %key <eight-bit>, 1
- %key <seven-bit>, 0
- ---------------------------------
- ; file bytesize keyword table.
-
- sfbtab: %table
- %key <7-bit>, 0
- %key <8-bit>, 1
- %key <9-bit>, 3 ;[BT]
- %key <auto>, 2
- %key <eight-bit>, 1
- %key <nine-bit>, 3 ;[BT]
- %key <seven-bit>, 0
- ***** CHANGE #4; PAGE 110, LINE 19; PAGE 110, LINE 19
- ret ]
- hrrz t3, versio ; edit
- skipe t3
- call [ movei t1, "("
- PBOUT
- numout t3, 8
- movei t1, ")"
- ---------------------------------
- ret ]
- hrrz t3, versio ; edit
- skipe t3
- call [ movei t1, "("
- PBOUT
- trzn t3,vi%dec ;[BT] Decimal?
- jrst $shv3 ;[BT] No, skip
- numout t3, ^d10 ;[BT] Yes
- skipa ;[BT]
- $shv3: numout t3, 8
- movei t1, ")"
- ***** CHANGE #5; PAGE 113, LINE 8; PAGE 113, LINE 8
-
- $shfil: tmsg <Byte size for file I/O: >
- hrroi t1, [ASCIZ/"Auto"/]
- skipn autbyt
- jrst [ hrroi t1, [asciz/Seven-Bit/]
- skipe ebtflg
- hrroi t1, [asciz/Eight-Bit/]
- jrst .+1 ]
- ---------------------------------
-
- $shfil: tmsg <Byte size for file I/O: >
- hrroi t1, [ASCIZ/"Auto"/]
- skipn autbyt
- jrst [ hrroi t1, [asciz/Seven-Bit/]
- move t2,ebtflg ;[BT]
- cain t2,1 ;[BT]
- hrroi t1, [asciz/Eight-Bit/]
- cain t2,3 ;[BT]
- hrroi t1, [asciz/Nine-Bit/] ;[BT]
- jrst .+1 ]
- ***** CHANGE #6; PAGE 161, LINE 8; PAGE 161, LINE 8
-
- ;[66] If outputting to a file, set up the mapping page pointers.
-
- rfil3b: skiple filjfn ;[66] JFN on a file?
- jrst [ move t1, [point 7, mappag*1000] ;[66] Yes, point to page.
- skipe ebtflg ;[66] Eight bit mode?
- hrli t1, (point 8,) ;[66] Then use 8-bit bytes.
- movem t1, pagptr ;[66] Save it here.
- ---------------------------------
-
- ;[66] If outputting to a file, set up the mapping page pointers.
-
- rfil3b: skiple filjfn ;[66] JFN on a file?
- jrst [ move t1, [point 7, mappag*1000] ;[66] Yes, point to page.
- move t2,ebtflg ;[BT] Get file byte size
- cain t2, 1 ;[BT] Eight bit?
- hrli t1, (point 8,) ;[66] Then use 8-bit bytes.
- cain t2, 3 ;[BT] Nine bit?
- hrli t1, (point 9,) ;[BT] Then use 9-bit bytes.
- movem t1, pagptr ;[66] Save it here.
- ***** CHANGE #7; PAGE 161, LINE 18; PAGE 161, LINE 21
- jrst .+1 ]
-
- ; If running locally, echo filename to screen.
-
- movei t1, 7 ;[66] Remember file byte size for reporting.
- skipe ebtflg ;[66] (this may be revised later because
- movei t1, 8 ;[66] of ITS binary headers or similar...)
- movem t1, bytsiz ;[66]
- ---------------------------------
- jrst .+1 ]
-
- ; If running locally, echo filename to screen.
-
- movei t1, 7 ;[66] Remember file byte size for reporting.
- move t2,ebtflg ;[BT] (this may be revised later because
- cain t2, 1 ;[BT]
- movei t1, 8 ;[66] of ITS binary headers or similar...)
- cain t2, 3 ;[BT]
- movei t1, 9 ;[BT]
- movem t1, bytsiz ;[66]
- ***** CHANGE #8; PAGE 168, LINE 31; PAGE 168, LINE 31
-
- rdclsb: hrli t1, .fbbyv ; Set the byte size.
- hrr t1, filjfn
- movx t2, fb%bsz ; Byte size field mask.
- movx t3, fld(7,fb%bsz) ; Value
- skipn itsfil ;[75] ITS binary file?
- skipe ebtflg ; Or eight-bit mode?
- movx t3, fld(8,fb%bsz) ; Set it that way, then.
- ---------------------------------
-
- rdclsb: hrli t1, .fbbyv ; Set the byte size.
- hrr t1, filjfn
- movx t2, fb%bsz ; Byte size field mask.
- movx t3, fld(7,fb%bsz) ; Value
- move t4, ebtflg ;[BT] Get bytesize
- cain t4, 1 ;[BT] If 8 bit
- movx t3, fld(8,fb%bsz) ;[BT] set it
- cain t4, 3 ;[BT] If 9 bit
- movx t3, fld(9,fb%bsz) ;[BT] set it
- skipe itsfil ;[75] ITS binary file?
- movx t3, fld(8,fb%bsz) ; Set it that way, then.
- ***** CHANGE #9; PAGE 195, LINE 33; PAGE 195, LINE 33
- NOUT
- nop
- movei t2, 40 ; A space
- BOUT
- movei t2, 7 ; Bytesize
- skipe ebtflg
- aos t2
- NOUT
- ---------------------------------
- NOUT
- nop
- movei t2, 40 ; A space
- BOUT
- movei t2, 7 ; Bytesize
- move t4, ebtflg
- cain t4, 1 ;[BT]
- aos t2
- cain t4,3 ;[BT]
- addi t2, 2 ;[BT]
- NOUT
- ***** CHANGE #10; PAGE 201, LINE 42; PAGE 201, LINE 42
- jrst getcha ;[75] Yes, then skip "autobyte" stuff.
-
- ; Next, if doing "autobyte", use the file byte size.
-
- skipe autbyt ;[81] Are we using autobyte?
- jrst [ setzm ebtflg ; Yes, assume seven-bit bytes.
- cain t2, ^d8 ; Really 8-bit?
- setom ebtflg ; Yes, act like user requested 8-bit.
- jrst .+1 ]
- ---------------------------------
- jrst getcha ;[75] Yes, then skip "autobyte" stuff.
-
- ; Next, if doing "autobyte", use the file byte size.
-
- skipe autbyt ;[81] Are we using autobyte?
- jrst [ setz t3, ;[BT] Yes, assume seven-bit bytes.
- cain t2, ^d8 ; Really 8-bit?
- movei t3, 1 ;[Bt] Yes, act like user requested 8-bit.
- cain t2, ^d9 ;[BT] 9-bit?
- movei t3, 3 ;[BT] Yes
- movem t3, ebtflg ;[BT]
- jrst .+1 ]
- ***** CHANGE #11; PAGE 201, LINE 52; PAGE 201, LINE 55
-
- ; Now, if we're to do 8-bit input, convert the byte count if necessary.
-
- getcha: skipn itsfil ; ITS binary file?
- skipe ebtflg ; Or eight bit mode?
- jrst [ cain t2, ^d8 ; Yes, is the byte size 8?
- jrst getchb ;[170] If so go adjust byte count if necessary.
- ---------------------------------
-
- ; Now, if we're to do 8-bit input, convert the byte count if necessary.
-
- getcha: skipn itsfil ; ITS binary file?
- skipe ebtflg ; Or eight bit mode?
- jrst [ caie t2, ^d9 ;[BT] 9-bit?
- cain t2, ^d8 ; Yes, is the byte size 8?
- jrst getchb ;[170] If so go adjust byte count if necessary.
- ***** CHANGE #12; PAGE 202, LINE 8; PAGE 202, LINE 8
-
- ; Or, if we're to do 7-bit input, fix the byte count for that.
-
- caie t2, 7 ; If the bytesize is not 7 or 8, treat as 7.
- cain t2, ^d8 ;[170] (don't do this to 8-bit files!
- skipa ;[170] ...)
- jrst [ movei t3, ^d36 ; Must convert, get the size of a word.
- idiv t3, t2 ; Divide by the byte size.
- move q1, bytcnt ; Get the number of bytes in file.
- idiv q1, t3 ; Divide by the bytes/word to get words.
- imuli q1, 5 ; Multiply by 5 (as if 7bit bytes).
- movem q1, bytcnt ; Save the new byte count.
- jrst getch2 ] ; Go map in page.
-
- ---------------------------------
-
- ; Or, if we're to do 7-bit input, fix the byte count for that.
-
- caie t2, 7 ; If the bytesize is not 7 or 8, treat as 7.
- cain t2, ^d8 ;[170] (don't do this to 8-bit files!
- jrst getchb ;[170] ...)
- caie t2, ^d9 ;[BT] Don't touch 9-bit
- jrst getchb ;[BT]
- movei t3, ^d36 ; Must convert, get the size of a word.
- idiv t3, t2 ; Divide by the byte size.
- move q1, bytcnt ; Get the number of bytes in file.
- idiv q1, t3 ; Divide by the bytes/word to get words.
- imuli q1, 5 ; Multiply by 5 (as if 7bit bytes).
- movem q1, bytcnt ; Save the new byte count.
- jrst getch2 ; Go map in page.
-
- ***** CHANGE #13; PAGE 205, LINE 16; PAGE 205, LINE 16
- mapi: movx t2, <.fhslf,,mappag> ; Form our fork,,mapping page
- movx t3, pm%rd ; Just want to read it.
- PMAP% ; Map it in.
- %jsker <Can't map in file page>,r ; Error, fail.
- move t3, [point 7, mappag*1000] ; Success, get a pointer to the page.
- skipn itsfil ;[75] An ITS binary file?
- skipe ebtflg ; Or eight bit access?
- hrli t3, (point 8,) ; Yes, then use 8-bit pointer.
- ---------------------------------
- mapi: movx t2, <.fhslf,,mappag> ; Form our fork,,mapping page
- movx t3, pm%rd ; Just want to read it.
- PMAP% ; Map it in.
- %jsker <Can't map in file page>,r ; Error, fail.
- move t3, [point 7, mappag*1000] ; Success, get a pointer to the page.
- move t4, ebtflg ;[BT]
- cain t4, 1 ;[BT] 8-bit?
- hrli t3, (point 8,) ; Yes, then use 8-bit pointer.
- cain t4, 3 ;[BT] 9-bit?
- hrli t3, (point 9,) ;[BT]
- skipe itsfil ;[75] An ITS binary file?
- hrli t3, (point 8,) ; Yes, then use 8-bit pointer.
- ***** CHANGE #14; PAGE 209, LINE 40; PAGE 209, LINE 40
- aos pagno ; Advance the file page number.
-
- ; Rewind the memory page back to word 0.
-
- putch4: move t1, [point 7, mappag*1000] ; Success, make a pointer
- skipn itsfil ;[75]
- skipe ebtflg ; of the appropriate
- hrli t1, (point 8,) ; byte size.
- movem t1, pagptr ; Store it.
- ---------------------------------
- aos pagno ; Advance the file page number.
-
- ; Rewind the memory page back to word 0.
-
- putch4: move t1, [point 7, mappag*1000] ; Success, make a pointer
- move t4, ebtflg ;[BT]
- cain t4, 1 ;[BT] 8-bit?
- hrli t1, (point 8,)
- cain t4, 3 ;[BT] 9-bit?
- hrli t1, (point 9,) ;[BT]
- skipe itsfil ;[75]
- hrli t1, (point 8,) ;[BT]
- movem t1, pagptr ; Store it.
- ***** CHANGE #15; PAGE 267, LINE 25; PAGE 267, LINE 25
- tmsg <, file bytesize > ; File bytesize
- numout bytsiz
- skipl rcving ; I/O bytesize, only if sending
- jrst [ tmsg <, i/o bytesize >
- movei t2, 7
- skipn itsfil ;[75]
- skipe ebtflg
- movei t2, 8
- numout t2
- ---------------------------------
- tmsg <, file bytesize > ; File bytesize
- numout bytsiz
- skipl rcving ; I/O bytesize, only if sending
- jrst [ tmsg <, i/o bytesize >
- movei t2, 7
- move t3, ebtflg ;[BT]
- cain t3, 1 ;[BT]
- movei t2, ^d8
- cain t3, 3 ;[BT]
- movei t2, ^d9 ;[BT]
- skipe itsfil ;[75]
- movei t2, ^d8 ;[BT]
- numout t2
- ***** CHANGE #16; PAGE 271, LINE 4; PAGE 271, LINE 4
- retskp ; And return, with success.
-
- ;[6] (this whole routine, just for fun...)
-
- moon: saveac <5,6>
-
- ; This code stolen from MOON.MAC (anybody know who wrote it?).
- ; Just changed OUTCHR's to PBOUT%'s via a macro. - Frank.
- ;
- setzb 3,4
- seto 2,
- ODCNV%
- erjmp r
- tlz 4,77
- IDCNV%
- ---------------------------------
- retskp ; And return, with success.
-
- ;[6] (this whole routine, just for fun...)
-
- moon: saveac <q1,q2>
-
- ; This code stolen from MOON.MAC (anybody know who wrote it?).
- ; Just changed OUTCHR's to PBOUT%'s via a macro. - Frank.
- ;
- setzb t3,t4
- seto t2,
- ODCNV%
- erjmp r
- tlz t4,77
- IDCNV%
- ***** CHANGE #17; PAGE 271, LINE 21; PAGE 271, LINE 21
- erjmp r ; Return upon any error.
- tmsg <, Moon: > ; OK so far, say what we're doing.
-
- ; AC2= Universal time adjusted for time zone.
-
- move 1,2 ; Right place.
- sub 1,newmn ; Sub off base new moon
- idiv 1,period ; Divide by the period
- idiv 2,perio4 ; Get fractions of a period
- camg 3,perio8 ; Check for pahse + or -
- jrst moon1 ; Not more than 3+ days
-
- sub 3,perio4 ; Make it next phase -n days
- cain 2,3 ; Is it LQ+3D+?
- tdza 2,2 ; It is
- aoj 2, ; Increment phase
-
- moon1: hllz 1,table(2) ; Get SIXBIT phase
- skipge 3 ; 3 < 0 then minus phase output
- tloa 1,'-' ; -
- tloa 1,'+' ; +
- movms 3 ; Fix mag of 3
- move 2,[point 6,1] ; Byte pointer
- movei 5,2 ; Loop 3 times
-
- moon2: ildb 4,2 ; Get a character
- addi 4," " ; Make ASCII
- OUTCHR 4 ; Type it
- sojge 5,moon2 ; Loop
-
- movsi 4,-4 ; Make aobjn pointer
- ;...
-
- moon3: hrrz 2,table(4) ; Get a multiplier
- trz 2,774000 ; Strip off ascii character
- imuli 3,(2) ; Get the value decoded
- hlrz 1,3 ; Get value
- tlz 3,-1 ; Zap old LH
- move 5,1 ; Use 5 & 6 here
- idivi 5,12 ; Radix 10
- addi 5,60 ; Make ASCII
- caile 5,60 ; Check for leading zero
- OUTCHR 5 ; Type it.
- addi 6,60 ; Make ASCII
- OUTCHR 6
- ldb 5,[point 7,table(4),24] ; Get d/h/m/s
- OUTCHR 5 ; Type it.
- OUTCHR ["."] ; Follow with a dot.
- aobjn 4,moon3 ; Loop.
-
- ---------------------------------
- erjmp r ; Return upon any error.
- tmsg <, Moon: > ; OK so far, say what we're doing.
-
- ; AC2= Universal time adjusted for time zone.
-
- move t1,t2 ; Right place.
- sub t1,newmn ; Sub off base new moon
- idiv t1,period ; Divide by the period
- idiv t2,perio4 ; Get fractions of a period
- camg t3,perio8 ; Check for pahse + or -
- jrst moon1 ; Not more than 3+ days
-
- sub t3,perio4 ; Make it next phase -n days
- cain t2,3 ; Is it LQ+3D+?
- tdza t2,t2 ; It is
- aoj t2, ; Increment phase
-
- moon1: hllz t1,mtable(t2) ; Get SIXBIT phase
- skipge t3 ; 3 < 0 then minus phase output
- tloa t1,'-' ; -
- tloa t1,'+' ; +
- movms t3 ; Fix mag of t3
- move t2,[point q2,t1] ; Byte pointer
- movei q1,2 ; Loop 3 times
-
- moon2: ildb t4,t2 ; Get a character
- addi t4," " ; Make ASCII
- OUTCHR t4 ; Type it
- sojge q1,moon2 ; Loop
-
- movsi t4,-4 ; Make aobjn pointer
- ;...
-
- moon3: hrrz t2,mtable(t4) ; Get a multiplier
- trz t2,774000 ; Strip off ascii character
- imuli t3,(t2) ; Get the value decoded
- hlrz t1,t3 ; Get value
- tlz t3,-1 ; Zap old LH
- move q1,t1 ; Use q1 & q2 here
- idivi q1,12 ; Radix 10
- addi q1,60 ; Make ASCII
- caile q1,60 ; Check for leading zero
- OUTCHR q1 ; Type it.
- addi q2,60 ; Make ASCII
- OUTCHR q2
- ldb q1,[point 7,mtable(t4),24] ; Get d/h/m/s
- OUTCHR q1 ; Type it.
- OUTCHR ["."] ; Follow with a dot.
- aobjn t4,moon3 ; Loop.
-
- ***** CHANGE #18; PAGE 273, LINE 13; PAGE 273, LINE 13
- per==35,,422752 ; 29d.12h.53m.19s
- period: per
- perio4: per/4
- perio8: per/10
-
- table: byte(18)'NM '(7)"d"(11)^D1 ; New moon - days - 1
- byte(18)'FQ '(7)"h"(11)^D24 ; First quarter - hours - 24
- ---------------------------------
- per==35,,422752 ; 29d.12h.53m.19s
- period: per
- perio4: per/4
- perio8: per/10
-
- mtable: byte(18)'NM '(7)"d"(11)^D1 ; New moon - days - 1
- byte(18)'FQ '(7)"h"(11)^D24 ; First quarter - hours - 24
-
- ------------------------------
-
- Date: Wed, 17 Feb 1988 23:03 MST
- From: "Frank J. Wancho" <WANCHO@SIMTEL20.ARPA>
- Subject: Using TOPS-20 Kermit with 9-Bit Files
-
- The KCC DEC-20 C compiler defaults to 9-bit files when you create a file
- with "wb" for its own reasons - the internal character types are 9-bit, and
- four 9-bit quantities on a read will properly pick up all 36 bits in a
- PDP-10 word. However, all you have to do is change the "wb" in the open to
- "w8" and you will get the expected behavior, i.e. 8-bit files which DEC-20
- Kermit can recognize automatically.
-
- ------------------------------
-
- 7-Jun-88 22:50:12-EDT,2542;000000000011
- Return-Path: <BEEBE@SCIENCE.UTAH.EDU>
- Received: from SCIENCE.UTAH.EDU by CU20B.CC.COLUMBIA.EDU with TCP; Tue 7 Jun 88 22:50:05-EDT
- Date: Tue 7 Jun 88 20:48:57-MDT
- From: "Nelson H.F. Beebe" <Beebe@SCIENCE.UTAH.EDU>
- Subject: Bug in Kermit-20
- To: sy.fdc@CU20B.COLUMBIA.EDU
- cc: BEEBE@SCIENCE.UTAH.EDU
- X-US-Mail: "Center for Scientific Computing, South Physics, University of Utah, Salt Lake City, UT 84112"
- X-Telephone: (801) 581-5254
- Message-ID: <12404684836.20.BEEBE@SCIENCE.UTAH.EDU>
-
- We are running NFS-20 here on our 20/60, giving our Suns
- access to the -20 file system, plus good things like
- archiving, undelete, expunge, and multiple generations.
-
- Sun's Network File system (NFS) is odd in that it does not
- conform to the age-old open--process--close model of I/O,
- but instead simply has a lookup (==> create if necessary)
- operation, plus read/write.
-
- As a consequence of this, the NFS-20 server never is told
- when the Sun NFS client is done with the file, so it never
- can officially close the file. Thus, we end up with NFS-20
- files which have 0 page count, and non-zero byte count, with
- the latter to be believed. A periodic CHFDB% to set the
- page count is expensive, and also leads to funny things like
- INFORMATION (about) DISK reporting negative pages-in-user
- counts.
-
- If the file is copied with the -20 COPY command, the page
- count then gets set to a correct non-zero value. Otherwise,
- NFS-20, and most -20 programs that use SIN%/SOUT% or
- BIN%/BOUT% instead of PMAP%, are perfectly happy to deal
- with the file. I had to fix Chris Maio's -20 implementation
- of Unix tar to do the page mapping correctly in the effect
- in a zero page count and non-zero byte count.
-
- Tonight, I discovered that Kermit-20 has a similar
- deficiency -- a transfer of such a (8-bit) file sent exactly
- 2048 bytes, implying that one page was read, even though
- more bytes were available. This is a double error -- (1)
- the byte count was not used, and (2) using the page count
- with a test at the end of a loop, instead at the beginning,
- would explain the transfer of 1 page instead of 0 page.
-
- I don't expect you to fix this, because I know we all would
- like to put -20 MACRO programming to rest and switch to C.
- Just thought I'd let you know, though, for historical
- purposes. I expect our -20 will be around a couple of years
- yet, but eventually, we too will have to bid it a fond
- farewell.
-
- I'm off on a 2-month trip to Europe and India on Thursday,
- so you won't hear from me until I get back.
- -------
- 8-Jun-88 09:17:29-EDT,871;000000000001
- Mail-From: SY.FDC created at 8-Jun-88 09:17:23
- Date: Wed 8 Jun 88 09:17:23-EDT
- From: Frank da Cruz <SY.FDC@CU20B.CC.COLUMBIA.EDU>
- Subject: Re: Bug in Kermit-20
- To: Beebe@SCIENCE.UTAH.EDU
- In-Reply-To: <12404684836.20.BEEBE@SCIENCE.UTAH.EDU>
- Message-ID: <12404799240.28.SY.FDC@CU20B.CC.COLUMBIA.EDU>
-
- You're right. The fix would be in the routine GETCH, which already reads the
- byte count and adjusts it if necessary for various reasons. After doing that
- it, it should calculate the number of pages based on the byte count (bytcnt)
- and byte size (bytsiz), rounded up to the next whole number, and store it in
- pagcnt. Of course, this assumes that the FDB's byte count is more reliable
- than its page count, in all cases (which might not always be true). I'll add
- your message and this reply to the "beware file". Thanks for the report.
- - Frank
- -------
-